/*****************************************************************************/
/**
 *  @file   RendererReceiver.h
 *  @author Jun Nishimura, Naohisa Sakamoto
 */
/*----------------------------------------------------------------------------
 *
 *  Copyright (c) Visualization Laboratory, Kyoto University.
 *  All rights reserved.
 *  See http://www.viz.media.kyoto-u.ac.jp/kvs/copyright/ for details.
 *
 *  $Id$
 */
/*****************************************************************************/
#ifndef KVSTILEDDISPLAYVIS__TDW__RENDERER_RECEIVER_H_INCLUDE
#define KVSTILEDDISPLAYVIS__TDW__RENDERER_RECEIVER_H_INCLUDE

#include <kvs/Thread>
#include <kvs/Mutex>

#include <list>
#include <kvs/Message>
#include <kvs/Acceptor>
#include <kvs/Connector>
#include <kvs/MessageBlock>

namespace kvstileddisplayvis
{

namespace tdw
{

class RendererReceiver : public kvs::Thread
{

    kvsClassName( tdw::RendererReceiver );

protected:

    kvs::Acceptor                   m_acceptor;

     // Reference only.
    kvs::Mutex*                     m_mutex;
    std::list<kvs::MessageBlock>*   m_messages;

public:

    RendererReceiver( void );

    virtual ~RendererReceiver( void );

public:

    void setMutex( kvs::Mutex* mutex );

    void setMessages( std::list<kvs::MessageBlock>* messages );

public:

    void initialize( void );

    void run( void );

};

}

}

#endif
